iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
自我挑戰組

Rails測試寫起乃!!!系列 第 3

Day03 測試寫起乃 - 安裝Rspec

  • 分享至 

  • xImage
  •  

安裝 Rspec

在安裝 Rspec 之前我們先產生一個 Rails 6的新專案到 Gemfile 可以看到其實在 test 裡已經有這些 gem 了

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
end

其實 capybara 以及 selenium 已經有了 其實就能夠進行 整合測試了但先不及我們先來安裝 Rspec 吧!

gem 'rspec-rails', '~> 5.0', '>= 5.0.2' 並且 bundle install

再來產生出相關 rspec 檔案

rails generate rspec:install

load ~/.spring.rb
Running via Spring preloader in process 76963
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

我們跟著 github 上的官方文件走過一遍吧!

# RSpec hooks into built-in generators
$ rails generate model user
      invoke  active_record
      create    db/migrate/20181017040312_create_users.rb
      create    app/models/user.rb
      invoke    rspec
      create      spec/models/user_spec.rb

# RSpec also provides its own spec file generators
$ rails generate rspec:model user
      create  spec/models/user_spec.rb

# List all RSpec generators
$ rails generate --help | grep rspec

基本上就是產生一個 User Model 和 User 的測試檔

如何運作 Rspec

看官方文件有以下幾種運作方式

# 預設: 跑所有spec資料夾底下的 *_spec.rb
$ bundle exec rspec 

# 指定只跑 spec 底下的 models 資料夾
$ bundle exec rspec spec/models

# 指定只跑 spec/controllers底下的accounts_controller_spec.rb
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb

# 指定只跑 spec/controllers底下的accounts_controller_spec.rb第八行的測試案例
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb:8

# 查看指令
$ bundle exec rspec --help

那有時候會發現有些測試不是每次都正確這時候我會使用 repeat 來重複跑測試

跑10次 accounts_controller_spec.rb 這個測試

$ repeat 10 bundle exec rspec spec/controllers/accounts_controller_spec.rb

又或是想跑兩個檔案?

$ bundle exec rspec spec/controllers/accounts_controller_spec.rb spec/controllers/profiles_controller_spec.rb

明天我們就來寫出我們的第一個測試檔摟!

參考來源:

rspec-rails


上一篇
Day02 測試寫起乃 - Rails 測試推薦資源
下一篇
Day04 測試寫起乃 - 撰寫Rspec
系列文
Rails測試寫起乃!!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言